const jwt = require("jsonwebtoken");
const { v4: uuidv4 } = require("uuid");

// 自定义的密钥，请务必保密
const secret = uuidv4();

function generateToken(openid, sessionKey) {
  // token有效期，单位为秒
  const expiresIn = 60 * 60 * 24; // 1天

  // 生成token，包含openid和sessionKey信息
  const token = jwt.sign({ openid, sessionKey }, secret, { expiresIn });

  return token;
}

function verifyToken(token) {
  return new Promise((resolve, reject) => {
    jwt.verify(token, secret, (err, user) => {
      if (!err) {
        resolve(user);
      } else {
        reject(err);
      }
    });
  });
}

module.exports = {
  generateToken,
  verifyToken,
};
